第七章 渠道对接
渠道指机器人与终端用户交互的媒介。
假设你已经搭建好了机器人,想在微信公众号、企业微信、小程序、官网或你们企业的APP中,让机器人服务你的终端用户,你可以通过渠道来实现。
平台提供的渠道有:[飞书机器人]、[微信公众号]、[企业微信自建应用]、[微信小程序插件]、[钉钉机器人]、[ Web SDK ]以及Web SDK生成的体验版网页。
同时也还提供了[开放平台]接口。调用方可以在自行开发的渠道上(比如APP 和 IoT 设备)接入吾来开放平台。
机器人:指在平台搭建和训练的对话机器人,包括问答、任务、关键词、闲聊。
终端用户:指通过渠道与机器人对话的C端用户。
以上概念之间的关系如下图:
7.1各渠道支持的消息类型
用户消息
各渠道支持用户发送的消息类型,如下:
消息类型 | 事件 | 微信公众号 | 企业微信 | Web SDK | 小程序插件 | 开放平台 |
---|---|---|---|---|---|---|
文本 | ✅ | ✅ | ✅ | ✅ | ✅ | |
图片 | ✅ | ✅ | ✅ | ✅ | ✅ | |
语音 | ✅ | ✅ | ✅ | |||
文件 | ✅ | |||||
卡片 | ✅ | ✅ | ||||
视频 | ✅ | ✅ | ||||
自定义消息 | ✅ | |||||
事件 | 进入事件 | ✅ | ✅ | ✅ | ✅ | |
事件 | 自定义事件 | ✅ | ||||
公众号事件 | 关注 | ✅ | ||||
公众号事件 | 点击菜单 | ✅ | ||||
公众号事件 | 查看菜单 | ✅ | ||||
公众号事件 | 扫码 | ✅ | ||||
公众号事件 | 位置 | ✅ |
机器人消息
各渠道支持机器人发送的消息类型,如下:
消息类型 | 微信公众号 | 企业微信 | Web SDK | 小程序插件 | 开放平台 |
---|---|---|---|---|---|
文本 | ✅ | ✅ | ✅ | ✅ | ✅ |
图片 | ✅ | ✅ | ✅ | ✅ | ✅ |
音频 | ✅ | ✅ | ✅ | ✅ | ✅ |
文件 | ✅ | ✅ | ✅ | ✅ | ✅ |
图文 | ✅ | ✅ | ✅ | ✅ | ✅ |
卡片 | ✅ | ✅ | ✅ | ||
视频 | ✅ | ✅ | ✅ | ✅ | |
自定义 | ✅ |
各渠道支持的预设属性
完成渠道对接后,你可以通过用户属性实现千人千面的机器人对话,而这个实现过程,是通过用户属性来实现的,详情见[用户属性]。
7.2开放平台
机器人平台提供了多种已封装好的对接渠道,包括公众号、企业微信、小程序插件以及Wed SDK,如果以上这些渠道的功能仍不能完成开发者的需求,本平台提供了开放平台。
开放平台以API的形式,为开发者提供机器人对话接口和 NLU 能力的接口,如接入机器人对话、配置机器人、管理用户以及统计等,你可以使用这些接口在不依赖网页应用的前提下使用吾来机器人的能力,并自主开发更多的功能。
通过开放平台提供接口,可以完成绝大部分机器人平台支持的功能,包括智能对话、任务设计、NLP等;除此之外,还能实现同步异步的传输以及消息投递。
下文将介绍这些内容:
开放平台 相关的基本概念。
开放平台 的平台操作。
API接口
API接口是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
Pubkey:公钥。
secret:密钥。
消息投递:将机器人或人工助理通过吾来发送的消息同步到企业客户的自有收发消息渠道中去的接口。需要客户提供回调地址。
消息路由:可以将机器人或人工助理通过吾来发送的消息同步到自有收发消息渠道中,企业客户可修改这条消息并将修改后的消息返回,从而影响机器人回复的内容。需要客户提供回调地址。
平台操作
1 点击侧栏 开放平台 ,进入界面。
2 点击左下角小问号- 接口文档 ,可以查看开放平台接口文档。
3 点击左下角小问号- SDK ,可以查看开放平台接口调用示例。
在 基础信息 中可以查看当前项目的 Pubkey 和 Secret。
在 接口配置 中可以设置消息投递和消息路由的回调接口。
7.3企业微信应用
企业微信渠道,即将机器人发布到企业微信中,在企业微信中实现与企业员工进行机器人对话交互的渠道。
那么,如何将机器人发布到企业微信中呢?首先你需要绑定企业微信应用。
企业微信应用绑定
1 点击“绑定企业微信应用”,查看弹窗中的提示信息进入绑定流程。
2 企业信息输入
- 登录企业微信管理后台,在 我的后台 > 企业信息 中找到 企业简称 和 企业ID ,复制后回填到对应的输入框。
3 自建应用填写
- 在企业微信管理后台 应用小程序 > 自建 中点击 创建应用,创建完成后找到 AgentID 和 Secret,复制后回填到对应的输入框。
4 设置接收消息服务
在企业微信管理后台已创建应用页面,找到 接收消息 项。
点击 设置API接收 进入详情页。
将吾来中生成的 URL链接、Token 和 EncodingAESKey 复制粘贴到 API接收消息 页面的对应输入区。
在企业微信管理后台点击保存。
并在吾来中,点击完成即可完成绑定。
5 绑定后,可通过操作-编辑去修改应用信息。
设置
当绑定企业微信应用成功后,列表里会出现绑定好的应用,支持查看和设置以下内容:
基础信息
Pubkey:公钥。
secret:秘钥。
问答满意度收集
打开开关,问答机器人回复用户问题后,在企业微信会话窗口中,用户可以对机器人回复答案进行满意度评价。包括“满意”、“内容不满意”、“回答不匹配”。反馈结果可以在知识点满意度 页面查看。
关闭开关,将不展示评价按钮。
企业通讯录授权
用户可以选择是否进行企业通讯录授权。授权企业通讯录后,将可以获取到企业人员增减,实时同步通讯录。若未授权,只能每2小时进行一次全量同步,同时将离职员工删除。
1 绑定后,在企业微信应用列表的操作列,点击“企业通讯录授权”。
2 登录企业微信管理后台,在 管理工具 页面点击 通讯录同步 ,进入后点击 开启API接口同步 ,权限勾选 API只读通讯录功能 后进行保存。
3 编辑 已设置接收事件服务器,进入编辑页面后,将吾来中生成的 URL链接、 Token 和 EncodingAESKey 复制成功后粘贴到 设置接收事件服务器 页面的 对应输入框中。
解绑应用
解绑企业微信后将不能再回复机器人消息,确定解绑后并前往企业微信后台"企业应用"-"自建应用"-"API"接收消息中点击删除应用。
7.4公众号管理
公众号管理页面可以用来管理和添加微信公众号,授权后的微信公众号可以通过吾来对话机器人与用户或粉丝进行对话交互。
授权公众号
1 按以下步骤,完成微信公众号授权:
点击"公众号管理-添加微信授权",扫码后执行相关操作进行绑定。点击“添加微信授权”,进入微信公众平台,扫描二维码授权第三方平台“吾来”。
使用公众号管理员帐号扫码授权,成功后会跳回到吾来页面,并在列表看到刚才授权的公众号。
2 这里需要注意的是:
同一个机器人下,最多支持授权10个微信公众号。
同一个微信公众号,只能在一个吾来机器人中授权。
授权成功的公众号会出现在列表中,公众号列表里会出现绑定好的公众号,支持针对对应公众号操作以下内容:
当添加微信授权成功后,公众号列表里会出现绑定好的公众号,支持查看和设置以下内容:
Pubkey:公钥。
secret:秘钥。
消息路由:实现定制需求的回调地址,由开发者(企业客户)提供。
- 消息路由是由平台给到开发者(企业客户)消息,消息包括“用户消息”和“机器人候选回复消息”,由开发者根据自己的策略去修改机器人回复消息或进行转人工操作,最终返回给平台修改后的消息,从而自主影响机器人回复的内容。
消息投递:由开发者(企业客户)提供。
- 平台可通过该接口将回复给用户的消息同步给开发者(企业客户),同步的消息包括“机器人回复消息”和使用平台IM回复给用户的“人工消息”,开发者可根据此接口统计回复给用户的消息。
问答满意度收集
打开开关,问答机器人回复用户问题后,在公众号会话窗口中,用户可以对机器人回复答案进行满意度评价。包括“满意”、“内容不满意”、“回答不匹配”。反馈结果可以在知识点满意度 页面查看。
关闭开关,将不展示评价按钮。
设置“关注自动回复”
添加关注自动回复后,新用户在关注该公众号后,可以向该用户自动发出消息。
消息类型支持:文字、图片、文件、语音、视频、图文。
支持手动推荐关联知识点。
自定义菜单
自定义菜单指支持用户自定义微信公众号中,底部展示的菜单按钮。
平台中,支持同步修改[公众号管理]中绑定的所有公众号的菜单。包括菜单的名称、点击菜单发送的消息内容、跳转地址等。
添加自定义菜单
点击页面左上方的公众号选择下拉框,可切换需要设置菜单的公众号;
点击公众号预览页面的菜单,绿色边框为选中状态,可以在右侧输入区添加和设置主菜单、子菜单的菜单名称、菜单内容等。
设置完成后,点击“保存并发布”,即可完成微信公众号菜单的更新。
解绑公众号
管理平台暂不支持公众号的解绑。如需解绑公众号,请在微信号平台的“添加功能插件-授权管理”页面取消公众号对吾来的授权。
取消授权后,会移除所有已经同步的粉丝数据与收发的消息记录。
注意事项
由于微信公众号平台限制,未通过微信认证的服务号或订阅号只能接收关注者消息,无法进行回复、获取用户信息等操作。为了使用到完整的功能,请确保帐号通过微信认证。
吾来会与微信公众平台自带的的客服功能冲突,请勿通过公众号管理平台左侧工具栏的“功能”列表下的客服功能接入客服。
如果服务号或订阅号还授权了其它开放平台,或是打开了自动回复,当用户发来消息时可能通过不同平台答复用户多条消息。所以建议关闭自动回复(在公众号管理平台左侧工具栏的“功能”列表下),并且取消对其它第三方平台的授权。
只有和机器人对话过的用户,才会出现在用户列表中。
7.5钉钉企业内部机器人
钉钉机器人渠道是采用钉钉“企业内部机器人”的方式进行对接,开通钉钉机器人渠道后,可以将机器人拉入钉钉群回复用户@机器人的消息,也可以与机器人进行单聊会话。
具体可实现以下对话场景:
创建好的机器人拉入钉钉群,用户@机器人时,机器人将回复在机器人平台中配置好的知识点或意图。
用户也可以在钉钉中搜索到机器人,与机器人展开单聊会话;
当用户与机器人的最后一次对话在一小时以内时,支持通过吾来IM人工给用户发消息;
那么,如何将机器人发布到钉钉中呢?你可以按下面的步骤完成开通。
创建钉钉企业内部机器人
登录钉钉开发者后台,在“应用开发”-“企业内部开发”-“机器人”页面,创建机器人。
在钉钉开发者后台创建机器人需完成两步:
a)填写基本信息:可根据企业需求,填写适合的机器人名称、机器人logo、机器人简介等基本信息;
b)填写开发信息:需要填入的“服务器出口IP”和“消息接收地址”可在钉钉机器人渠道页面获取,见1.1.2。
获取开发信息
在平台的“钉钉机器人”页面,提供了创建钉钉机器人的开发信息,包括“服务器出口IP”和“消息接收地址”。
点击输入框右侧的复制图标,快捷完成复制。复制成功后,填入钉钉开发者后台的开发信息中。
这里需要强调的是,将开发信息填入钉钉开发者后台完成创建机器人后,此时机器人并没有生效,需要你继续完成后面的步骤。
回填机器人主体信息
回填机器人主体信息步骤如下:
a)在钉钉开发者后台完成创建机器人后,在机器人的“基础信息”中,查看并复制机器人的主体信息APPkey和APPSecret。
b)将复制的钉钉机器人的主体信息APPkey和APPSecret填入平台中,完成开通钉钉机器人渠道。
发布机器人
机器人创建完成后,开发者需要在钉钉开发者后台发布机器人。
7.6Web SDK对接
Web SDK有两种接入方式:
1 将SDK代码加载在网页里,嵌入在页面的右下角,接入方式见[开发文档]。
2 接入到网页中任意按钮,用户点击通过click唤起的方式,在新页面打开对话窗口的方式,参照[体验版网页]。
页面中提供的开发信息有CDN地址、Pubkey、secret及消息路由,下面分别展示介绍每一个字段的用途。
CDN地址:打包的JS文件,会放在CDN中,可以直接用这个CDN地址的链接加载SDK。且CDN 地址中包含SDK的版本号,如需更新新版 Web SDK,在引入的CDN地址中,更新对应版本号即可。
Pubkey:公钥。
secret:秘钥。
消息路由:实现定制需求的回调地址,由开发者提供。消息路由格式参照[开放平台文档]。
- 消息路由的实现逻辑是将机器人或人工助理通过平台发送的消息同步到自有收发消息渠道中,企业客户可修改这条消息并将修改后的消息返回,从而影响机器人回复的内容。
接入Web SDK渠道,开发者可按照此开发文档,完成对接。
开通或注册吾来账号,并登录平台:https://platform.wul.ai
进入“渠道管理→Web SDK→基础信息”页面,获得CDN地址与Pubkey。
根据文档中“2.1接入配置”流程,接入Web SDK。
接入成功后,可以在“渠道管理→Web SDK→页面样式”与“渠道管理→Web SDK→功能设置”页面,分别配置机器人的展示样式和功能。
CDN 地址中包含版本号,如需更新 Web SDK 的功能,请更新对应版本号的CDN即可。
接入配置
SDK版本介绍
2020年7月30日
最新版本:
<script src="https://cdn.wul.ai/IMLib-5.0.0.min.js"></script>
1、SDK前端整体重构,优化众多历史问题。
2019年12月12日
稳定版本(不再迭代):
<script src="https://cdn.wul.ai/IMLib-3.30.0.min.js"></script>
1、调用接口升级为开放平台V2.0;
2、支持自定义入口图标位置。
初始化 1.引入 建议放到body标签的第一行
<script src="https://cdn.wul.ai/IMLib-5.0.0.min.js"></script>
2.初始化
在body标签内添加如下代码
<div id="wulai-websdk"></div>
<script>
new websdk({
data: {
pubkey: 'xxxxxxxxxxxxxxxxxxxx'
}
})
</script>
3.参数说明
参数名 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
pubkey | 必填,必须是从吾来平台获取的有效PubKey | string | '' | |
autoOpen | SDK默认是否打开聊天窗口 | boolean | false | |
fullScreen | 是否全屏 | boolean | false | |
userInfo | 设置用户信息 | Object | 3.30.0 | |
tagValues | 设置用户属性 | Array | 3.30.0 | |
pos | 设置sdk入口图标的位置 | Object | {right: '16px', bottom: '16px'} | 3.30.0 |
userInfo的配置项
参数名 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
userId | 用户ID,请提供非空且唯一的字符串,相同的userId在同一时间只能给一个网页使用,否则会被融云视为多端登录,导致消息发送失败。字符最大长度128字符 | string | '' | |
userAvatar | 展示在吾来管理后台的用户头像 | string | '' | |
nickName | 展示在吾来管理后台的用户名 | string | '' |
tagValues的配置项
参数名 | 说明 | 类型 | 默认值 | 版本 |
---|---|---|---|---|
user_attribute | 用户属性 | Object | {id: ''} | |
user_attribute_value | 用户属性值 | Object | {name: ''} |
userInfo的用法
<script>
new websdk({
data: {
pubkey: 'xxxxxxxxxxxxxxxxxxxx',
userInfo: {
userId: '',
userAvatar: '',
nickName: ''
}
}
})
</script>
tagValues的用法
<script>
new websdk({
data: {
pubkey: 'xxxxxxxxxxxxxxxxxxxx',
tagValues: [
{
user_attribute: { id: '100000' },
user_attribute_value: { name: '女' }
},
{
user_attribute: { id: '100000' },
user_attribute_value: { name: '女' }
}
]
}
})
</script>
4.API
- toggleSDkVisible 控制web sdk窗口是打开还是关闭:
<button onClick="websdk.toggleSDkVisible()" />
API-唤起SDK会话窗口
Web SDK接入网页后,会在页面的右下角展示会话入口,点击入口,可以唤起SDK会话窗口。
当希望通过点击网页中的其他按钮,唤起SDK会话窗口,你可以通过调用toggleSDkVisible 在任意按钮中增加click事件,来打开和关闭Web sdk窗口。
调用方法:
<button onClick="websdk.toggleSDkVisible()" />
7.6.1 功能设置
功能设置页面主要为对消息相关的设置,你可以通过这些设置,使机器人与用户的对话交互更加友好,提升终端用户的体验。
这些设置包括:“是否展示历史消息”、“是否自动弹出对话窗口”、“设置欢迎语”、“是否展示输入联想”、“收集问答满意度”等。
具体功能介绍和设置参照下面的说明。
展示历史消息
- 打开开关,每当用户进入Web SDK,打开聊天窗口,就会展示出之前会话的历史消息;
- 关闭开关,将不展示历史消息。
自动弹出对话窗口
打开开关,用户在浏览网站的过程中,系统将根据设置的时长自动弹出会话窗口邀请用户会话,同时可以结合欢迎语设置,提升用户进行业务咨询。
- 支持设置用户首次进入网站弹出会话窗口的时长,比如:设置用户进入官网3秒后弹出会话窗口。
- 支持设置用户每次主动关闭会话后,再次弹出会话窗口的时长。比如:用户关闭会话窗口后,10秒再次弹出会话窗;
关闭开关,将不会主动邀请终端用户进行会话。
设置欢迎语
当用户进入对话窗口时,可以通过“进入事件”来触发知识点或意图作为欢迎语。
配置路径:“对话搭建-个性化体验-用户事件-选择知识点/意图”。
同时你也可以结合“属性组”和任务对话“读取用户属性单元”,实现千人千面的欢迎语。
展示用户输入联想
打开开关,用户输入消息时,会自动推荐与用户输入内容最相关的四条相似知识点或意图。用户点击输入联想可直接发送消息,代替手动输入,更便捷和精准的与机器人进行交互。
关闭开关,将不会推荐输入联想。
问答满意度收集
打开开关,问答机器人回复用户问题后,在Web SDK会话窗口中,终端用户可以对机器人回复答案进行满意度评价。包括“满意”、“内容不满意”、“回答不匹配”。反馈结果可以在知识点满意度 页面查看。
关闭开关,将不展示评价按钮。
7.6.2样式设置
假设你已经完成了Web SDK的接入,想要设置SDK对话框中,机器人的名称、机器人头像、消息气泡的颜色、会话框的高度等。
你可以在页面样式中完成相应的设置。同时在调整的过程中,也可以进行实时预览。
设置页面样式步骤如下:
点击菜单"页面样式",进入界面。
根据需要,编辑“机器人名称”、自定义Web SDK的主题颜色、机器人头像、用户头像、入口图标、入口图标大小、头像形状、对话气泡样式、会话窗口高度等设置。其中,机器人头像和入口图标支持自定义上传。
在右侧预览区,预览最终展示效果。
点击"保存",完成设置。
7.7体验版网页
假设你已经搭建好了机器人,想马上体验到终端用户与机器人对话的效果。我们提供了体验版网页,你可以便捷的进行体验。
体验版网页是Web SDK渠道的弹窗样式。你可以通过访问网页链接或手机扫描二维码,直接在网页中打开对话页面,快速体验到你所搭建的机器人在实际场景中的对话效果。同时可以在Web SDK渠道的页面样式中配置颜色、气泡、头像等样式。
你也可以将体验版网页的URL嵌入在官网的某个按钮中,当用户点击按钮时,即可在新窗口中唤起与机器人的对话窗口。
通过开关可以控制体验版网页的生效状态。
打开开关,可以直接“在新窗口打开”网页链接或“手机扫描二维码”进行访问,并体验机器人的效果。
关闭开关, 之前生成的网页链接和二维码将失效,同时界面上不再展示网页链接和二维码;
再次打开开关,将生成新的网页链接和二维码,可进行有效访问。
体验效果
复制链接在浏览器中打开,或点击“新窗口打开”,可在PC端体验机器人的效果。
手机扫描二维码或访问链接,可在手机上体验机器人的效果。
你也可以将网页链接或二维码发送给自己的同事或朋友,邀请其体验机器人效果。
7.8飞书机器人
“吾来-渠道设置-飞书机器人”中添加相关参数即可,机器人的操作没有变化。
在飞书上要操作这些地方:
1.创建机器人应用
2.在飞书渠道配置相应配置
如果想要获取员工部门、地点等信息作为属性需要在飞书上多选一些权限(目前已经支持选择的权限,具体如下表):
权限分类 | 权限名称 | 开通说明 | 权限等级 |
---|---|---|---|
消息与群组 | 获取与发送单聊、群组消息 | 必须开通 | 需审核权限 |
消息与群组 | 获取与上传图片或文件资源 | 必须开通 | 需审核权限 |
消息与群组 | 获取用户发给机器人的单聊消息 | 必须开通 | 需审核权限 |
消息与群组 | 获取用户发给机器人的单聊消息 | 必须开通 | 免审权限 |
消息与群组 | 获取用户在群聊中@机器人的消息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
消息与群组 | 以应用的身份发消息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 以应用身份读取通讯录 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取部门基础信息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取部门组织架构信息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户基本信息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户组织架构信息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户邮箱信息 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户 user ID | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户性别 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |
通讯录 | 获取用户手机号 | 如需获取用户属性建议首次即开通,否则将无用户基础信息,邮箱等信息。 | 免审权限 |